html {
    min-width: 1250px;
    position: relative;
    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Oxygen,
        Ubuntu,
        Cantarell,
        "Open Sans",
        "Helvetica Neue",
        sans-serif;
    scrollbar-width: none;
}

.scrollbar,
.scrollbarX {
    overflow-y: auto;
    scrollbar-width: thin;
    outline: none;
}

.scrollbarX {
    overflow-x: auto;
}

.scrollbar::-webkit-scrollbar,
.scrollbarX::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

body::-webkit-scrollbar:horizontal {
    display: none;
}

.scrollbar::-webkit-scrollbar-thumb,
.scrollbarX::-webkit-scrollbar-thumb {
    background-color: var(--scrollbar-color);
    border-radius: 5px;
}

.scrollbar::-webkit-scrollbar-track,
.scrollbarX::-webkit-scrollbar-track {
    background-color: var(--scrollbar-bg-color);
}

body {
    margin: 0;
    box-sizing: border-box;

    /* Custom colors that are used for themes */
    --text-color: white;
    --bg-color: #111;
    --alert-color: #141414;
    --history-lines: #262626;
    --boxmain-bordercolor: plum;
    --box-color: #111;
    --button-color: #171717;
    --hover-color: #333;
    --buttonbuy-color: #171717;
    --buildings-canbuy-color: #555;
    --buildings-hover-color: #666;
    --blessings-canbuy-color: #222;
    --blessings-hover-color: #444;
    --tab-color: #171717;
    --singtab-color: black;
    --buttonimg-color: black;
    --hoversing-color: #252525;
    --scrollbar-color: #444;
    --scrollbar-bg-color: #111;
}

body.loading {
    overflow: hidden;
}

.bodycolor {
    color: var(--text-color);
    background-color: var(--bg-color);
}

.mainText {
    color: var(--text-color);
}

.boxColor {
    border: 3px solid;
    border-color: var(--boxmain-bordercolor);
    background-color: var(--box-color);
}

a {
    color: white;
    text-decoration: none;
    outline: none;
}

a:hover {
    text-decoration: underline;
}

a:visited {
    color: white;
}

label {
    display: block;
}

input,
button,
select,
textarea {
    font-size: 0.75em;
    padding: 0.05em;
    margin: 0;
    box-sizing: border-box;
    border: 0 solid #ccc;
}

input:disabled {
    color: gray;
}

input {
    min-height: 20px;
    color: white;
    padding: 0 0 0 0.2em;
    background-color: #171717;
}

input[type="checkbox"] {
    min-height: auto;
}

button {
    min-height: 30px;
    color: white;
    transition-duration: 0.15s;
    cursor: pointer;
    background-color: var(--button-color);
    outline: none;
}

body button:hover,
body button:active {
    background-color: var(--hover-color);
}

.flex {
    display: flex;
}

.flex.row {
    flex-flow: row;
}

.flex.column {
    flex-flow: column;
}

.flex.center {
    justify-content: center;
}

.vAlign {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.hCenter {
    margin-left: auto;
    margin-right: auto;
}

.hCenter.tight {
    margin-top: 0;
    margin-bottom: 0;
}

@keyframes slide-in {
    from {
        transform: translate(-100%, 10%);
    }

    to {
        transform: translate(5%, 10%);
    }
}

@keyframes slide-out {
    to {
        transform: translate(-100%, 10%);
    }
}

#transparentBG {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: max(100vw, 100%);
    height: max(100vh, 100%);
    background-color: rgb(0 0 0 / 50%);
    z-index: 6968;
}

#notification {
    position: fixed;
    display: none;
    transform: translateY(10%);
    z-index: 6969;
    width: 15%;
    min-width: calc(140px + 10em);
    min-height: calc(40px + 5em);
    overflow: hidden;
    border: 1px solid gold;
    border-radius: 5px;
    box-sizing: border-box;
    font-size: min(1em, 24px);
    color: white;
    background-color: var(--alert-color);
}

.slide-in {
    animation: slide-in 1000ms;
    animation-fill-mode: forwards;
}

.slide-out {
    animation: slide-out 1000ms;
    animation-fill-mode: forwards;
}

#notification > p {
    position: fixed;
    top: 50%;
    left: 50%;
    width: 90%;
    transform: translate(-50%, -50%);
    margin: 0;
    text-align: center;
    white-space: pre-line;
}

#notifx {
    position: fixed;
    top: 2px;
    right: 2px;
    padding: 3px;
    border-radius: 2px;
    font-size: 0;
    z-index: 1;
    color: white;
    transition-duration: 0.15s;
    cursor: pointer;
    background-color: var(--button-color);
}

#notifx:hover {
    background-color: var(--hover-color);
}

#confirmationBox {
    display: none;
    position: fixed;
    top: 50vh;
    left: 50vw;
    transform: translate(-50%, -50%);
    z-index: 10000000;
    width: 30vw;
    height: 30vh;
    min-width: min(min(30em, 800px), 100vw);
    min-height: min(min(20em, 600px), 100vh);
    max-width: 100vw;
    max-height: 100vh;
    color: white;
    background-color: var(--alert-color);
    border: 1px solid gold;
    border-radius: 5px;
    box-sizing: border-box;
    font-size: min(1em, 24px);
    padding: 15px;
}

#confirmWrapper,
#alertWrapper,
#promptWrapper {
    height: 100%;
    display: none;
}

#confirm > p,
#alert > p,
#prompt > label {
    grid-area: txt;
    text-align: center;
    white-space: pre-line;
    margin: 0;
}

/* Elements relating to the browser popup functions (Alert, Confirm, etc) */

#ok_confirm,
#ok_alert,
#ok_prompt {
    grid-area: btn;
}

#cancel_confirm,
#cancel_prompt {
    grid-area: btn2;
}

#prompt_text {
    background-color: #171717;
    border: 1px solid gold;
    border-radius: 5px;
    font-size: 1em;
    grid-area: lbl;
    margin: 0 -20%;
    padding: 0 2px;
}

#confirm > button,
#alert > button,
#prompt > button {
    border: 1px solid gold;
}

#confirm {
    height: 100%;
    display: grid;
    grid-template-columns: auto 6em 1em 6em auto;
    grid-template-rows: auto 2em 0.5em;
    grid-template-areas:
        "txt txt txt txt txt"
        ". btn . btn2 ."
        ". . . . .";
    outline: none;
}

#alert {
    height: 100%;
    display: grid;
    grid-template-columns: auto 8em auto;
    grid-template-rows: auto 2em 0.5em;
    grid-template-areas:
        "txt txt txt"
        ". btn ."
        ". . .";
    outline: none;
}

#prompt {
    height: 100%;
    display: grid;
    grid-template-columns: auto 6em 2em 6em auto;
    grid-template-rows: auto 0.5em 2em 1em 2em 0.5em;
    grid-template-areas:
        "txt txt txt txt txt"
        ". . . . ."
        ". lbl lbl lbl ."
        ". . . . ."
        ". btn . btn2 ."
        ". . . . .";
    outline: none;
}

.confirmBox {
    display: flex;
    align-items: center;
}

#preloadDeleteGame {
    position: fixed;
    bottom: 1em;
    right: 1em;
    min-width: 8em;
    z-index: 1;
    border: 2px solid red;
    color: pink;
}

#offlineBlur {
    background-color: #111;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 6969;
    width: max(100vw, 100%);
    height: max(100vh, 100%);
}

#offlineBlur img {
    width: 100%;
    height: 100%;
    filter: blur(4px);
}

#offlineContainer {
    flex-direction: column;
    align-items: center;
    position: fixed;
    top: 0;
    left: 50vw;
    z-index: 6969;
    transform: translate(-50%, 0%);
    background-color: var(--alert-color);
    border-radius: 5px;
    border: 2px solid gold;
    box-sizing: border-box;
    padding: 15px;
    margin-top: max(0px, calc(10vh - 15px));
    max-height: 90vh;
    overflow: hidden;
    font-size: min(1em, 20px);
}

.offlineStats {
    display: flex;
    flex-direction: column;
    z-index: 3;
}

.offlineStat {
    display: flex;
    flex-direction: row;
    align-items: center;
    z-index: 3;
    margin-bottom: 2px;
}

.offlineStatElement {
    margin-left: 10px;
}

.offlineText {
    display: flex;
    z-index: 5;
}

#offlineTimer,
#progressbardescription {
    display: flex;
    z-index: 5;
    margin: 5px 0;
}

#exitOffline {
    width: 18em;
    min-height: auto;
    min-width: 220px;
    padding: 6px 0;
    z-index: 3;
    margin-top: 20px;
    border: 2px solid ivory;
    background-color: purple;
    color: white;
}

#exitOffline:hover {
    background-color: #b300b2;
}

.resetInformationContainer {
    display: flex;
    flex-direction: column;
    line-height: 1.2em;
    width: 45%;
    flex-basis: 45%;
}

.resetsContainer {
    display: flex;
    line-height: 1em;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.resetbtn {
    cursor: pointer;
    margin-right: 5px;
    background-color: var(--button-color);
}

.resetsButtons {
    display: flex;
    align-items: start;
}

#resetrow {
    display: flex;
    align-items: start;
}

#resetrow img {
    height: 32px;
    width: 32px;
}

#resetinfo {
    text-align: left; /* Keeps text from bouncing around */
    font-variant-numeric: tabular-nums;
    height: 3.6em;
    overflow: hidden;
    white-space: pre-line;
}

#resetrewards > div {
    display: flex;
    align-items: center;
}

#resetrewards > div > div {
    margin: auto 5px auto 2px;
}

#tabrow {
    text-align: center;
    width: 100%;
    list-style: none;
    margin: 0;
    margin-inline: unset;
    margin-block: unset;
    padding-inline: unset;
    display: flex;
    justify-content: center;
    gap: 0 5px;
}

.navbar {
    display: flex;
    justify-content: center;
    width: 100%;
}

nav button {
    display: block;
    border: 1px solid;
    min-width: 100px;
    min-height: 21px;
    line-height: 1em;
    font-size: min(1em, 20px);
    padding: 1px;
    color: white;
    border-top-left-radius: 5px;
    border-top-right-radius: 5px;
    border-bottom: none;
    text-align: center;
    overflow: hidden;
    white-space: nowrap;
}

#buildingstab {
    border-color: orange;
}

#upgradestab {
    border-color: orange;
}

#settingstab {
    color: white;
    border-color: white;
}

#achievementstab {
    border-color: white;
}

#runestab {
    border-color: cyan;
}

#challengetab {
    border-color: plum;
}

#researchtab {
    border-color: green;
}

#shoptab {
    border-color: white;
    background-color: purple;
}

#singularitytab {
    border-color: lightgoldenrodyellow;
    background-color: var(--singtab-color);
    color: red;
}

#singularitytab:hover {
    background-color: var(--hoversing-color);
}

#shoptab:hover {
    background-color: #b300b2;
}

#anttab {
    border-color: maroon;
}

#cubetab {
    border-color: orange;
    color: red;
}

#traitstab {
    border-color: orange;
    color: red;
}

.subTabWrapper {
    display: flex;
    flex-direction: row;
    flex-flow: wrap;
    justify-content: center;
    margin-top: 15px;
    gap: 10px 15px;
}

.subTabWrapper > button {
    min-width: 150px;
    text-align: center;
}

#coinBuildings {
    display: flex;
    position: relative;
    padding: 0;
    flex-direction: column;
    align-items: center;
    max-width: 1600px;
    margin: 0 auto;
}

#coinBuildings p {
    margin: 0;
}

p#buildinghotkeys {
    margin-top: 15px;
    color: lightgray;
    text-align: center;
}

#buildingtext {
    padding: 0;
    text-align: center;
    width: 1000px;
}

#upgrades {
    position: relative;
    text-align: center;
    padding: 0;
    color: gold;
    margin: 0 auto;
    max-width: 1500px;
}

#upgradesFlex {
    display: flex;
    width: 90%;
    margin: 4% 5% 0;
    justify-content: space-around;
}

#upgradesFlex > div {
    display: flex;
    flex-direction: column;
    align-items: center;
}

#upgradesFlex > div > p {
    margin: 5px 0;
    line-height: 1em;
}

#upgradesFlex > div > table {
    font-size: 0;
    min-height: 182px;
    text-align: center;
}

#upgradesFlex > div > table img {
    background-color: var(--buttonimg-color);
    cursor: pointer;
}

#upgradesFlex > div > button {
    min-width: 80px;
}

#shoptogglecoin { grid-column-start: 1; }
#shoptoggleprestige { grid-column-start: 2; }
#shoptoggletranscend { grid-column-start: 3; }
#shoptogglegenerator { grid-column-start: 4; }
#particleAutoUpgrade { grid-column-start: 6; }

#upgradesrow3 {
    text-align: center;
    margin-top: 8px;
}

#upgradesrow3 > p {
    padding-top: 0;
    margin: 0;
}

#upgradeeffect { color: pink; }

#toggle9 {
    min-width: 130px;
    margin: 25px auto;
}

#settings {
    position: relative;
    padding: 0;
    text-align: center;
}

/* Settings settings sub tab */

#settingsubtab {
    flex-direction: column;
    justify-content: space-around;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 15px;
}

.settingSubTabUpper {
    display: flex;
    justify-content: center;
}

#confirmationToggleBox,
#exportButtons,
#thirdParty {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    min-width: 300px;
    max-width: 500px;
    padding: 5px;
}

.confirmationToggles {
    display: flex;
    justify-content: center;
    flex-flow: wrap;
    gap: 1em;
}

#confirmationToggleBox > p {
    margin: 5px 0;
}

p#specialActionsTitle,
p#themesTitle {
    margin-top: 15px;
}

#exportButtons > * { margin: 2px auto; }

#saveStringInput {
    width: 100%;
    padding: 1px;
    border: 1px solid white;
}

#importFileButton {
    font-size: 0.75em;
    padding: 0.05em;
    border: 2px solid white;
    color: white;
    cursor: pointer;
    background-color: var(--button-color);
    outline: none;
}

#savegame,
#deleteGame,
#importFileButton,
#exportButtons > label {
    width: 12em;
    min-width: 180px;
    min-height: 20px;
    margin: 2px auto;
    box-sizing: border-box;
    transition-duration: 0.15s;
}

#importFileButton:hover {
    background-color: var(--hover-color);
}

#savegame[disabled] {
    background-color: crimson;
}

#exportgame {
    width: 12em;
    min-width: 150px;
    min-height: 40px;
    margin: 5px auto;
}

#thirdParty {
    gap: 1em;
}

#thirdParty p {
    margin: 0 auto;
}

/* Third party URLs (Discord, Patreon, patch notes) */
#thirdParty > div {
    flex-wrap: wrap;
    display: flex;
    flex-direction: column;
}

#thirdParty > div > a {
    /* For whatever reason this fixes the click area for the external links */
    margin: 0 auto;
    font-size: 0;
}

/* Confirmation toggle box */
.confirmationToggle {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 32px;
    gap: 5px;
}

.promocodeButton {
    min-width: 65%;
    margin-bottom: 3px;
}

div.addCodeBox {
    display: flex;
    padding: 0;
    gap: 0 3px;
}

#addCode {
    flex-grow: 4;
}

#addCodeOne {
    flex-grow: 1;
}

p#promocodeinfo {
    width: 100%;
}

.center {
    margin: auto;
}

.settingpic {
    flex-grow: unset;
}

.auto.square {
    min-width: 32px;
    min-height: 32px;
    padding: 0;
}

.auto.square:hover {
    background-color: var(--hover-color);
}

.buttonRow {
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin-top: 35px;
    margin-left: 7.5%;
    margin-bottom: 20px;
    z-index: 1;
    font-size: min(1em, 20px);
}

.buttonRow > div {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 10px;
    min-height: 35px;
}

.buildingSpacer {
    height: 35px;
}

.buttonRow > div > p {
    margin-top: 0.25em;
}

.buttonRow > div > .image {
    height: 32px;
    width: 32px;
}

.buttonRow > div > .desc {
    width: 22em;
}

.buildingPurchaseBtn {
    width: 15em;
    border-radius: 8px;
    border: 1px solid white;
    background-color: var(--buttonbuy-color);
    cursor: default;
}

.buildingPurchaseBtn:hover {
    background-color: var(--buttonbuy-color);
}

.buildingPurchaseBtn.buildingPurchaseBtnAvailable {
    cursor: pointer;
    background-color: var(--buildings-canbuy-color);
}

.buildingPurchaseBtn.buildingPurchaseBtnAvailable:hover {
    background-color: var(--buildings-hover-color);
}

.buttonRow > div > .auto {
    width: 6em;
    min-width: 80px;
}

.autobuyerToggleButton {
    background-color: var(--button-color);
}

.buttonRow > div > .stats {
    width: 25em;
    line-height: 1em;
}

#buildtext12,
#buildtext14,
#buildtext16 {
    min-height: 2em;
}

#taxinfo {
    text-align: center;
    font-size: 1em;
    margin-top: 30px;
}

.tightText {
    margin: 0 auto;
    text-align: center;
}

#statistics {
    position: relative;
    text-align: center;
    padding: 0;
    color: whitesmoke;
}

#achievements {
    display: flex;
    justify-content: center;
}

#achievementstable {
    font-size: 0;
    border-collapse: collapse;
}

#achievementstable img {
    background-color: var(--buttonimg-color);
}

.NotificationToggle {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5px;
}

.NotificationToggle > p {
    margin: 15px 0;
}

.achNotification {
    flex-grow: unset;
}

.nonSquare {
    min-width: 39px;
    min-height: 20px;
}

#achievementinfo > p,
#achievementColorInfo > p {
    margin: 0;
}

#achievementinfo {
    margin-top: 5px;
}

#achievementColorInfo {
    margin-top: 10px;
}

#buyamountoffering {
    position: absolute;
    left: calc(50% + 350px);
    top: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    z-index: 1;
}

.talismansCenter {
    display: flex;
    width: 70%;
    flex-direction: column;
    padding: 0 10px;
    max-width: 900px;
}

.talismansModify {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
}

.talismansModify p {
    margin: 0;
}

#talismanSummary,
#talismanLevelUpSummary,
#talismanRespecSummary {
    margin-bottom: 10px;
}

.talismanBuyAmountContainer {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 30%;
    margin-top: 23px;
}

#buyamounttalisman {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
}

#buyamountcoin,
#buyamountcrystal,
#buyamountmythos,
#buyamountparticle,
#buyAmountTesseract {
    position: absolute;
    left: 80%;
}

.buyAmountBtn {
    background-color: var(--button-color);
    cursor: pointer;
    transition-duration: 0.15s;
}

.buyAmountBtn:hover {
    background-color: var(--hover-color);
}

#togglecrystalbuy {
    color: white;
    position: absolute;
    font-size: 11px;
    width: 220px;
    left: 80%;
    top: 30px;
    margin-left: -87px;
}

#toggleofferingbuy {
    color: white;
    position: absolute;
    font-size: 11px;
    width: 250px;
    left: 85%;
    top: 25px;
    margin-left: -183px;
}

#prestige {
    position: relative;
    padding: 0;
    color: cyan;
    flex-direction: column;
    align-items: center;
    max-width: 1600px;
    margin: 0 auto;
}

#crystalupgrades {
    width: 50em;
    max-width: 1000px;
    color: white;
    text-align: center;
}

#crystalupgradestable { margin: 0 auto; }

#crystalupgrades img {
    background-color: var(--buttonbuy-color);
}

#autocrystalbuild {
    margin-top: 40px;
}

#toggle15,
#prestigeautotoggle,
#prestigeamount {
    width: 12em;
    min-width: 150px;
    min-height: auto;
}

#prestigeamount {
    color: white;
    border: 1px solid cyan;
    background-color: black;
}

#prestige p {
    margin: 0;
}

#autoprestige {
    color: white;
}

p#prestigehotkeys {
    margin-top: 15px;
    width: 1000px;
    text-align: center;
    color: gray;
}

#runes {
    position: relative;
    padding: 0;
}

#runeContainer1,
#runeContainer3,
#runeContainer4 {
    flex-direction: column;
    align-items: center;
    position: relative;
}

#runeContainer2 {
    margin-top: 20px;
    justify-content: center;
}

#runesToggle {
    display: flex;
    justify-content: center;
    flex-flow: wrap;
    margin: 15px 0 10px;
    gap: 10px 15px;
}

.heptNotification {
    height: 20px;
    width: 20px;
}

#runesToggle > button {
    min-width: 100px;
    text-align: center;
}

#offeringDetails,
#runeEffectDisplays {
    max-width: 1200px;
    display: flex;
    text-align: center;
    flex-direction: column;
}

#offeringDetails > p,
#runeEffectDisplays > p {
    margin: 0;
}

#runeDetails {
    display: flex;
    width: 100%;
    max-width: calc(min(70em, 1600px));
    min-width: 1200px;
    flex-direction: row;
    justify-content: center;
    height: auto;
    margin: 10px 0;
}

.runeType {
    min-width: 14%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    font-size: min(1em, 20px);
}

.runeType > button {
    min-width: 100px;
    text-align: center;
    border: 2px solid gold;
    cursor: default;
}

.runeType > button:hover {
    background-color: var(--button-color);
}

.runeTypeElement {
    margin: 0;
    text-align: center;
    transition-duration: 0.15s;
}

img.runeTypeElement {
    background-color: var(--button-color);
    cursor: pointer;
}

img.runeTypeElement:hover {
    background-color: var(--hover-color);
}

.runeType > .runeButtonAvailable {
    background-color: purple;
    cursor: pointer;
}

.runeType > .runeButtonAvailable:hover {
    background-color: #b300b2;
}

#toggleautofortify,
#toggleautoenhance {
    min-width: 125px;
    border: 2px solid red;
}

#talismanFragmentCost {
    width: 15em;
    max-width: 250px;
    text-align: center;
    margin: 0 -30px 0 0;
}

.talismanShardsContainer {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    width: 30%;
    margin-top: 23px;
    z-index: 1;
}

.talismanShardContainer {
    display: flex;
    align-items: center;
    margin-bottom: 12px;
}

.talismanShardIcon {
    width: 32px;
}

.talismanShardAmount {
    width: 5em;
    min-width: 70px;
    margin-left: 4px;
    font-size: 0.9em;
}

.fragmentBtn {
    width: 5em;
    min-width: 80px;
    color: orange;
    cursor: default;
}

.fragmentBtn:hover {
    background-color: var(--button-color);
}

.talismanBtn {
    width: 5em;
    min-width: 80px;
}

#buyTalismanAll {
    width: 5em;
    min-width: 80px;
    color: orange;
}

#toggleautoBuyFragments {
    width: 7em;
    min-width: 94px;
    margin-right: 10px;
    color: orange;
}

.talisminBtnAvailable {
    background-color: purple;
    cursor: pointer;
}

.talisminBtnAvailable:hover {
    background-color: #b300b2;
}

.talismansContainer {
    display: flex;
    position: relative;
    justify-content: space-around;
    padding: 0 10px;
    max-width: 900px;
}

.talismanContainer {
    flex-direction: column;
    min-width: 11%;
    min-width: 102px;
    align-items: center;
    white-space: nowrap;
    font-size: min(1em, 20px);
}

.talismanIcon {
    width: 64px;
    border: 4px solid white;
    cursor: pointer;
}

.talismanLevel {
    margin-top: 1px;
    margin-bottom: 3px;
}

#respecAllTalismans {
    position: absolute;
    width: 7em;
    max-width: 140px;
    color: plum;
    border: 2px solid white;
    left: 135px;
    top: 70px;
    transform: translate(-100%);
}

#talismanEffect,
#talismanlevelup,
#talismanrespec {
    margin-top: 40px;
    text-align: center;
}

#talismanlevelup {
    align-self: flex-start;
    margin-left: 150px;
}

#talismanlevelup table {
    font-size: 0;
}

#talismanlevelup table p {
    font-size: initial;
    width: 5em;
}

#talismanrespec > div {
    display: flex;
    flex-direction: column;
    transform: translate(25%);
    margin-top: 10px;
}

#talismanrespec > div > div {
    display: flex;
    flex-direction: row;
    gap: 20px;
}

.talismanRespecBtn {
    width: 200px;
    text-align: center;
}

#transcension {
    position: relative;
    padding: 0;
    flex-direction: column;
    align-items: center;
    max-width: 1600px;
    margin: 0 auto;
}

#transcension p {
    margin: 0;
    text-align: center;
}

#transcension > .buttonRow {
    color: plum;
}

#transcendshardbonus {
    margin-top: 2px;
}

#autotranscend {
    text-align: center;
}

#toggle21,
#transcendautotoggle,
#transcendamount {
    width: 12em;
    min-width: 150px;
    min-height: auto;
}

#transcendamount {
    color: white;
    border: 1px solid plum;
    background-color: black;
}

p#transcendhotkeys {
    margin-top: 15px;
}

#transcendhotkeys {
    color: gray;
    text-align: center;
}

#challenges {
    position: relative;
    padding: 0;
}

#challengesWrapper {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

#challengeIntroduction {
    text-align: center;
    font-size: 1.2em;
    margin: 20px 0 0;
}

#challengesAutoToggles {
    display: flex;
    justify-content: center;
    flex-flow: wrap;
    gap: 10px 15px;
}

#challengesAutoToggles > button {
    min-width: 200px;
}

#toggleAutoChallengeStart { border: 2px solid gold; }

#startChallenge {
    border: 2px solid red;
    font-size: 1.1em;
    min-width: 300px;
    min-height: 75px;
    background-color: black;
    transition-duration: 0.15s;
}

#startChallenge:hover {
    background-color: var(--hover-color);
}

#retryChallenge { border: 2px solid plum; }

/* Hide the last 3 buttons until the user clicks on a challenge */
#toggleAutoChallengeIgnore,
#startChallenge,
#retryChallenge { display: none; }

#challengeIcons {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 4px;
    align-self: center;
    color: white;
    text-align: center;
}

#challengeIcons > div {
    display: flex;
    flex-direction: column;
    align-items: center;
}

#challengeIcons img {
    width: 64px;
    height: 64px;
    cursor: pointer;
    vertical-align: top;
}

/* In webkit, the font-size px is fixed even if it is enlarged, but Firefox fluctuates */
.challengeLevels {
    min-width: 4.8em;
    max-width: 4.8em;
    margin: 4px auto 0;
    font-size: 12px;
    overflow: hidden;
}

#challengeDetails {
    display: flex;
    justify-content: center;
    max-width: 1200px;
    align-self: center;
}

#challengeTimers {
    margin-right: 20px;
    width: 300px;
}

#oneChallengeDetails {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    width: 42em;
}

#oneChallengeDetails > p {
    margin: auto;
    height: auto;
}

#challengeName { color: white; }
#challengeFlavor { color: plum; }
#challengeRestrictions { color: crimson; }
#challengeGoal { color: gold; }
#challengePerCompletionRewards { color: var(--text-color); }
*[id^="challengePer"] { color: pink; }
#challengeFirst1 { color: orange; }
#challengeQuarkBonus { color: cyan; }

#challengeTimersText {
    display: flex;
    flex-direction: column;
}

#challengeTimersText > p {
    margin: 0;
}

#challengeTimersText > input {
    border: 2px solid orchid;
    width: 10em;
    min-width: 180px;
    max-width: 100%;
    font-size: 1.1em;
}

#challengeWorthlessTexts {
    display: flex;
    flex-direction: column;
    text-align: center;
}

#challengeWorthlessTexts > p {
    margin: 0;
}

#challengehotkeys { color: gray; }
#challengewarning { color: crimson; }
#challengewarningreincarnation { color: limegreen; }

.challenge {
    background-color: var(--button-color);
    transition-duration: 0.15s;
}

.challenge:hover {
    background-color: var(--hover-color);
}

.challengeActive {
    background-color: plum;
}

.challengeActive:hover {
    background-color: #ebc7eb;
}

#reincarnation {
    position: relative;
    padding: 0;
    color: limegreen;
    flex-direction: column;
    align-items: center;
    max-width: 1600px;
    margin: 0 auto;
}

#reincarnateautomation {
    margin-top: 80px;
}

#reincarnationTexts {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

#reincarnation p { margin: 0; }

#toggle27,
#reincarnationamount,
#reincarnateautotoggle {
    width: 12em;
    min-width: 150px;
    min-height: auto;
}

#reincarnationamount {
    color: white;
    border: 1px solid green;
    background-color: black;
}

#reincarnateautomation > div {
    display: flex;
    flex-direction: column;
    align-items: center;
}

#reincarnationinfo {
    color: lime;
}

p#reincarnatehotkeys {
    margin-top: 15px;
    color: gray;
    text-align: center;
}

#research {
    position: relative;
    padding: 0;
}

.researchContainer {
    display: flex;
    justify-content: center;
}

#researchtable {
    border-collapse: collapse;
    font-size: 0;
}

#researchtable > tbody {
    margin-top: 15px;
}

#researchDetails {
    display: flex;
    flex-direction: column;
    text-align: center;
    align-items: center;
    margin-top: 5px;
}

#researchDetails > p {
    width: 55em;
    max-width: 100%;
    margin: 0;
}

#researchToggles {
    display: flex;
    flex-direction: row;
    justify-content: center;
    flex-flow: wrap;
    gap: 10px 15px;
    margin: 15px 0;
}

#researchToggles > button {
    min-width: 175px;
}

#researchinfo2 {
    min-height: 3em;
}

#researchtable img {
    background-color: var(--buttonimg-color);
}

#researchtable .researchAvailable {
    cursor: pointer;
    transition-duration: 0.15s;
}

#researchtable .researchAvailable:hover {
    background-color: var(--hover-color);
}

#researchtable .researchPurchased {
    background-color: purple;
}

#researchtable .researchPurchasedAvailable {
    cursor: pointer;
    transition-duration: 0.15s;
}

#researchtable .researchPurchasedAvailable:hover {
    background-color: #b300b2;
}

#researchtable .researchRoomba {
    background-color: orange;
}

#researchtable .researchMaxed {
    background-color: green;
}

#shop {
    text-align: center;
    position: relative;
}

#shopWrapper {
    display: flex;
    justify-content: center;
}

#actualWrapper {
    display: flex;
    font-size: min(1em, 20px);
}

#actualShopContainer {
    display: flex;
    flex-direction: column;
    align-items: center;
}

#actualShop {
    display: flex;
    padding: 5px;
    margin-top: 10px;
    width: calc(115px * 8 - 5px);
    border: 3px solid plum;
    gap: 5px;
    flex-wrap: wrap;
}

#actualPotionShop > div,
#actualShop > div {
    width: 110px;
}

#actualPotionShop > div > p,
#actualShop > div > p {
    margin: 0 0 3px;
    line-height: 1em;
}

#shoptop {
    color: whitesmoke;
    font-size: 1.2em;
    margin-top: 20px;
}

#actualConsumables {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    width: 250px;
    margin-right: 20px;
}

#actualPotionShop {
    display: flex;
    padding: 5px;
    width: calc(115px * 2 - 5px);
    border: 3px solid yellow;
    gap: 5px;
    flex-wrap: wrap;
}

#goldenQuarksDisplay > img {
    font-size: 0;
}

#quarkamount {
    font-size: 1.2em;
    color: aqua;
    margin: 0 0 0 5px;
}

#quarksDisplay,
#goldenQuarksDisplay,
#octeractsDisplay,
#totalOcteractsDisplay {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}

#totalOcteractsDisplay {
    margin-top: 15px;
    margin-bottom: 15px;
}

#octeractsDisplay > p,
#totalOcteractsDisplay > p {
    margin: 0 0 0 10px;
}

#goldenQuarkamount {
    font-size: 1.2em;
    color: gold;
    margin-left: 5px;
}

#octeractAmount {
    font-size: 1.2em;
    color: lightseagreen;
    margin-left: 5px;
}

#consumables {
    color: orangered;
    font-size: 1.2em;
    margin-top: 20px;
}

#shopButtons {
    display: flex;
    justify-content: center;
    flex-flow: wrap;
    float: right;
    gap: 5px;
    margin-top: 5px;
}

#shopButtons > button {
    min-width: 150px;
    min-height: 40px;
    margin-bottom: 6px;
}

#shopHovers {
    width: 800px;
}

#shopHovers > p { margin: 0; }

.consumablebutton,
.permshopbutton {
    width: 100%;
    min-height: 40px;
    padding: 0;
    line-height: 1em;
    vertical-align: top;
}

#ants {
    position: relative;
    padding: 0;
    text-align: center;
    max-width: 1500px;
    margin: 0 auto;
}

#antsWrapper {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    flex-shrink: 0;
    margin-right: min(10em, 100px);
}

#antsWelcomeTexts { margin-top: 40px; }
#antsWelcomeTexts > p { margin: 0; }
#antwelcome { font-size: 1.3em; }

#antrow1 {
    display: flex;
    gap: 0 4px;
    margin-top: 12px;
    color: red;
    z-index: 1;
}

#antrow2 {
    max-width: 800px;
    margin-top: 10px;
    min-height: 10em;
}

#antrow3 {
    max-width: 800px;
    margin-top: 10px;
    min-height: 7em;
}

#antrow4 {
    display: flex;
    gap: 0 4px;
    margin-top: 10px;
    color: red;
    z-index: 1;
}

#antrow2 > p,
#antrow3 > p {
    margin: 0;
}

#crumbcount {
    font-size: 1.2em;
    min-height: 2.8em;
}

#antToggleFeatures {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin: 5px 0;
}

.antSacrificeButtonsContainer {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
}

#toggleAntMax {
    min-width: 100px;
    border: 1px solid gold;
}

#toggleAutoSacrificeAnt {
    min-width: 150px;
    border: 1px solid crimson;
}

#autoSacrificeAntMode,
#autoAntSacrificeAmount {
    width: 12em;
    min-height: 20px;
    min-width: 150px;
    border: 1px solid green;
}

#sacrificeAnts {
    position: absolute;
    padding: 0;
    width: 200px;
    margin: 0 0 0 -340px;
    text-align: center;
    left: calc(80% - 5em);
    white-space: nowrap;
    z-index: 1;
}

.sacrificeStatus {
    display: flex;
    flex-direction: column;
    align-items: center;
}

#antSacrificeTimer {
    padding: 2px 0.5em;
}

.antSacrificeSettingsContainer {
    display: flex;
    flex-direction: column;
}

#antSacrificeSummary {
    position: absolute;
    padding: 0;
    width: 300px;
    top: 30px;
    left: calc(80% - 5em);
    text-align: left;
    white-space: nowrap;
}

#antSacrificeSummary p {
    margin: 0;
}

.antSacrificeHeader {
    margin-bottom: 4px;
}

#antSacrificeTable {
    margin: 15px 0 0 70px;
    border-spacing: 0;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

#antSacrificeTable p {
    margin-left: 5px;
}

.antBtn {
    background-color: var(--button-color);
}

.antTierBtnAvailable,
.antUpgradeBtnAvailable {
    cursor: pointer;
    background-color: silver;
}

#cubes {
    display: flex;
    justify-content: center;
    position: relative;
}

/* Wow! Cube sidebar */
#wowCubeSidebar {
    display: flex;
    flex-direction: column;
    margin: 0 30px;
    line-height: 1.1em;
    text-align: center;
    width: 250px;
    align-items: center;
}

#wowCubeSidebarButtons {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px 15px;
    margin-bottom: 20px;
}

.cubesToQuark {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 125%;
}

.cubeToQuark {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 10px;
}

.cubeSwitchTabBtn {
    width: 12em;
    min-width: 250px;
}

#wowCubeSidebar p {
    margin: 0;
}

#cubeToQuarkTimer,
#cubeToQuarkTimerValue {
    font-size: 1.2em;
}

.cubeBtn {
    min-width: 100px;
    background-color: black;
    border: 1px solid gold;
}

.autoOpensBtn {
    height: 30px;
    display: flex;
    flex-direction: column;
    overflow: visible;
}

.autoOpens {
    width: 8em;
    min-width: 100px;
    min-height: 30px;
    background-color: black;
}

.autoOpensInput {
    width: 8em;
    min-width: 100px;
    color: white;
    background-color: black;
    z-index: 1;
}

p[id$="BlessingsTotal"] {
    padding: 15px;
    margin-left: 22.5%;
    margin-right: auto;
}

#cubeBlessingsTotal { color: orange; }
#tesseractBlessingsTotal { color: orchid; }
#hypercubeBlessingsTotal { color: rgb(255 0 76); }
#platonicBlessingsTotal { color: orange; }

#cubesWrapper {
    display: flex;
    justify-content: flex-start;
    margin-top: 30px;
    width: 1250px;
}

.cubesBonus {
    align-self: flex-start;
}

.cubesBonus tbody tr > td:first-child {
    font-size: 0;
}

.openGrid {
    display: flex;
    align-self: flex-start;
    margin: 10px 0 5px;
    width: 1000px;
}

.openImage {
    height: 64px;
    width: 64px;
}

.inventory {
    margin: auto 10px;
}

.openBtn {
    display: flex;
    flex-flow: wrap;
    align-items: flex-start;
    gap: 5px;
    margin-left: 10px;
}

.openButtons {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.cubeBonus {
    align-self: flex-start;
    margin-left: -1px;
    margin-top: 5px;
    white-space: nowrap;
}

.cubeIcon {
    border-spacing: 0;
}

.cubeIcon img {
    margin-right: 5px;
}

.cubeTab {
    flex-direction: column;
    align-items: center;
    width: auto;
    margin-left: 50px;
}

.cubeTab > span {
    text-align: center;
    width: 75%;
    margin-left: 0;
    margin-right: auto;
}

#cubeTab5 {
    width: 60%;
}

#cubeTab5Wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 15px;
    text-align: center;
    align-self: normal;
}

#cubeTab5Wrapper p {
    margin: 0;
}

#cubeTab6 {
    flex-direction: row;
    align-items: flex-start;
}

#cubeUpgradeTable {
    margin: 5px 0;
    border-collapse: collapse;
    font-size: 0;
}

.cubeUpgradeInfo {
    min-height: 4em;
}

#toggleCubeBuy {
    min-width: 200px;
    margin-top: 10px;
}

.gridImg {
    background-color: var(--buttonimg-color);
    cursor: pointer;
}

/* Credits */

#creditssubtab {
    margin-top: 20px;
}

#creditssubtab > * {
    font-size: 1.2em;
    text-align: center;
    margin: 0.4em 0;
}

#versionnumber {
    color: fuchsia;
}

#ascension {
    position: relative;
    padding: 0;
    color: orange;
    flex-direction: column;
    align-items: center;
    max-width: 1600px;
    margin: 0 auto;
}

#ascension p {
    margin: 0;
    text-align: center;
}

#ascendConstantUpgrades {
    display: flex;
    width: 50em;
    max-width: 1000px;
    flex-direction: column;
    align-items: center;
}

#ascendautomation {
    margin-top: 10px;
}

.resetautomation {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 100px;
}

#constUpgradeLevel,
#constUpgradeCost,
#constUpgradeEffect1 {
    color: white;
}

#tesseractautobuytoggle,
#tesseractautobuymode,
#tesseractAmount {
    width: 12em;
    min-width: 150px;
    min-height: auto;
}

#tesseractAmount {
    color: white;
    border: 1px solid orange;
    background-color: black;
}

#autotessbuyeramount {
    margin: 0;
}

p#ascendHotKeys {
    margin-top: 15px;
    color: gray;
    text-align: center;
}

#creditssubtab > h1 {
    font-size: 1.5em;
    text-align: center;
}

#creditList {
    display: grid;
    grid-template-columns: repeat(4, minmax(250px, 1fr));
    max-width: 1000px;
    margin: 0 auto;
}

.credit {
    display: flex;
    flex-direction: row;
    margin-top: 2px;
}

.credit > a {
    margin-left: 5px;
}

#artistList {
    display: grid;
    grid-template-columns: repeat(5, 160px);
    justify-content: center;
}

#artistList > p {
    margin: 0.4em 0;
}

#statisticsSubTab {
    padding-top: 25px;
    justify-content: center;
}

#statsForNerds {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
    width: 25em;
    min-width: 500px;
    max-width: 800px;
    height: fit-content;
    gap: 10px 15px;
}

#statsForNerds > button {
    min-width: 150px;
}

.statContainer {
    width: 20em;
    min-width: 400px;
    max-width: 500px;
    flex-direction: column;
    align-items: flex-end;
    margin-bottom: auto;
    padding-left: 25px;
    padding-right: 25px;
    padding-bottom: 25px;
    display: none;
}

#miscStats {
    display: block;
}

.statPortion {
    margin: 0;
    text-align: left;
    font-size: 0.9em;
    min-width: max-content;
}

.statPortion.indented {
    width: 360px;
    padding-left: 20px;
}

.statNumber {
    color: yellow;
    float: right;
}

.statPortion.statTotal {
    color: orange;
    font-weight: bold;
    font-size: 1em;
}

.statNumber.statTotal {
    color: deepskyblue;
}

.constUpgrade {
    background-color: var(--button-color);
    transition-duration: 0.15s;
}

.constUpgradeAvailable {
    background-color: green;
    cursor: pointer;
}

.constUpgradeAvailable:hover {
    background-color: #00b300;
}

.constUpgradeSingle {
    background-color: gold;
}

.constUpgradeSingleAvailable {
    background-color: gold;
    cursor: pointer;
}

.constUpgradeSingleAvailable:hover {
    background-color: #fff4b3;
}

.subtabSwitcher > button.buttonActive {
    background-color: crimson;
}

.subtabContent {
    display: none;
}

#exitOffline.subtabContent {
    display: block;
    visibility: hidden;
}

.subtabContent.subtabActive {
    display: block;
}

.subtabContent.subtabActive.subtabDisplayFlex {
    display: flex;
    justify-content: center;
}

.subtabContent.subtabActive.historySubTab.subtabDisplayFlex > div {
    display: flex;
}

.historySubTab {
    color: white;
}

.historySubTab p {
    margin: 8px 0 12px;
}

.historySubTab table {
    margin: auto;
    border-collapse: collapse;
    width: 100%;
    white-space: nowrap;
    text-align: left;
    line-height: 1em;
}

.historySubTab tbody span {
    vertical-align: middle;
}

.historySubTab tbody img {
    vertical-align: middle;
    height: 20px;
    margin-right: 3px;
}

#historyAscendTable td:nth-last-child(3) > img {
    margin-right: 0;
}

#historyAscendTable td:nth-last-child(3) > span {
    visibility: hidden;
    font-size: 0;
}

.historySubTab tbody td {
    padding: 2px 6px;
    height: 28px;
}

.historySubTab tbody .history-gain:last-child { margin-right: 0; }

.historySubTab tbody tr:nth-child(odd) {
    background: var(--history-lines);
}

.historySubTab tbody .history-seconds {
    white-space: nowrap;
}

.historySubTab tbody .history-filler {
    padding: 0;
}

.historySubTab tbody *[title] {
    text-decoration: underline;
}

#historyReset,
#historyAnts {
    margin-left: 20px;
}

#historyAscend,
#historySingularity {
    margin: 0 auto;
}

#historyTogglePerSecondButton {
    min-width: 110px;
    min-height: 25px;
    float: right;
}

.onOffToggle {
    text-align: center;
    padding: 5px;
    border: 2px solid red;
    margin-top: 8px;
}

#historyResetTable {
    min-width: 400px;
}

#historyAntsTable {
    min-width: 700px;
}

#historyAscendTable,
#historySinhgularityTable {
    min-width: 1180px;
    white-space: nowrap;
}

.historyTableWrap {
    max-height: 650px;
    overflow-y: auto;
}

#historyAscend .historyTableWrap,
#historySingularity .historyTableWrap {
    min-width: 1212px;
}

.runeBlessingPurchaseSettings {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 15px;
    min-height: 50px;
}

.runeBlessingRow {
    display: flex;
    width: 1200px;
    align-items: center;
    gap: 4px 15px;
    margin-bottom: 10px;
}

.runeIcons {
    height: 64px;
    width: 64px;
}

.runeTexts {
    width: 12em;
    max-width: 250px;
}

.runeButtons {
    width: 25em;
    min-width: 325px;
    max-width: 350px;
    border: 1px solid yellow;
    color: gold;
}

.runeEffectTexts {
    width: 35em;
    max-width: 600px;
}

.runeButtonsBuyAll {
    width: 10em;
    min-width: 120px;
    border: 1px solid yellow;
    color: gold;
}

#toggle36,
#toggle37 {
    width: 5em;
    min-width: 60px;
}

.runeButtonsAvailable {
    background-color: var(--blessings-canbuy-color);
    cursor: pointer;
}

.runeButtonsAvailable:hover {
    background-color: var(--blessings-hover-color);
}

#buyRuneBlessingInput {
    min-width: 120px;
    width: 5em;
    font-size: 0.8em;
    border: 2px solid crimson;
    color: white;
}

#buyRuneSpiritInput {
    min-width: 120px;
    width: 5em;
    font-size: 0.8em;
    border: 2px solid orange;
    color: white;
}

#traits {
    justify-content: center;
    align-items: start;

    /* Hopefully prevent some elements from overlapping with the tab buttons */
    margin-top: 10px;
}

#corruptionMain {
    min-width: 700px;
    max-width: 1200px;
    margin: 10px;
    padding: 10px 0;
}

#corruptionIntroduction {
    font-size: 1.2em;
    color: darkorchid;
}

#corruptionInfo1 {
    color: yellow;
}

#corruptionSelected {
    width: 70px;
    height: 70px;
    margin-top: 15px;
}

#corruptionSelectedPic {
    height: 100%;
    object-fit: contain;
}

#corruptionDetails {
    display: flex;
    min-height: 9em;
    visibility: hidden;
}

#corruptionName {
    font-size: 1.2em;
    color: red;
}

#corruptionDescription {
    color: darkviolet;
}

#corruptionLevelCurrent {
    color: orchid;
}

#corruptionLevelPlanned {
    color: lime;
}

#corruptionSpiritContribution {
    color: gold;
}

#ascensionAutomation {
    margin-top: 10px;
}

#ascensionAmount,
#ascensionAutoEnable,
#ascensionAutoToggle {
    width: 12em;
    min-width: 150px;
    min-height: auto;
}

#ascensionAmount {
    border: 1px solid orange;
    color: gold;
    background-color: black;
}

#corruptionStatsLoadouts {
    min-width: 500px;
    max-width: 600px;
    margin: 10px;
    padding: 30px 10px;
    border: 1px solid orange;
    box-sizing: border-box;
    color: white;
    text-align: center;
}

#corrStatsBtn,
#corrLoadoutsBtn {
    min-width: 120px;
    max-width: 100%;
    border: 2px solid;
}

#corrButtonRow {
    gap: 30px;
}

.corruptionContainer {
    display: flex;
    flex-direction: column;
    justify-content: space-around;
}

.corruptionStatRow {
    display: flex;
    flex-flow: row;
    align-items: center;
}

.corruptionStatRow > img {
    height: 40px;
}

.corrDesc {
    color: white;
    min-width: 240px;
    margin: 0 auto;
    text-align: center;
    line-height: 1em;
}

.corrLoadoutName:hover {
    text-decoration: underline;
    cursor: pointer;
}

.corrLoadoutNameCol {
    width: 20%;
}

.corrBtn {
    width: 30px;
    margin: 0 auto;
}

#corruptionStats button {
    white-space: nowrap;
}

.corruptionMax {
    border: 2px solid green;
    width: 3.5em;
}

.corruptionUp {
    border: 1px solid green;
    min-width: 30px;
    width: 1.5em;
}

.corruptionDown {
    border: 1px solid red;
    min-width: 30px;
    width: 1.5em;
}

.corruptionReset {
    border: 2px solid red;
    width: 3.5em;
}

#corruptionStats,
#corruptionLoadouts {
    font-size: min(1em, 20px);
    margin-top: 10px;
    min-height: 350px;
    box-sizing: border-box;
    z-index: 1;
}

#corruptionDisplays {
    margin-top: 5%;
}

.corrLoadoutName {
    white-space: nowrap;
}

#corruptionLoadoutTable {
    border-collapse: collapse;
    text-align: center;
    width: 100%;
}

#corruptionLoadoutTable tbody th {
    font-size: 0;
    padding: 0;
}

img.small {
    width: 32px;
}

img.corruptionImg.small {
    width: 100%;
    max-width: 32px;
}

.corrSave {
    min-height: 20px;
    min-width: 40px;
    border: 1px solid dodgerblue;
    width: 100%;
}

.corrLoad {
    min-height: 20px;
    min-width: 40px;
    border: 1px solid #5b5ddc;
    width: 100%;
}

.corrImport {
    min-height: 20px;
    min-width: 40px;
    border: 1px solid green;
    width: 100%;
}

#corruptionCleanse {
    width: 8em;
    min-width: 150px;
    margin: auto 20px;
    border: 2px solid darkmagenta;
    z-index: 2;
}

#corruptionCleanseConfirm {
    width: 100px;
    margin: auto;
    border: 2px solid green;
    visibility: hidden;
}

header {
    display: flex;
    flex-direction: column;
    align-items: center;
}

header .img {
    height: 32px;
    width: 32px;
}

.subHeader {
    display: flex;
    flex-direction: row;
    min-width: 1250px;
    max-width: calc((38px + 7.5em) * 4 + 40em);
    min-height: 90px;
    margin-bottom: 5px;
}

.currenciesContainer {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    line-height: 1em;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    justify-content: space-around;
    flex-basis: 55%;
}

.currencyContainer {
    display: flex;
    align-items: center;
    width: calc(38px + 7.5em);
    min-width: 150px;
}

header #quarkDisplay { color: white; }
header #coinDisplay { color: gold; }
header #diamondDisplay { color: cyan; }
header #offeringDisplay { color: gold; }
header #mythosDisplay { color: plum; }
header #mythosshardDisplay { color: plum; }
header #particlesDisplay { color: limegreen; }
header #obtainiumDisplay { color: pink; }

.statDisplay {
    padding-left: 6px;
    margin: auto 0;
    line-height: 1em;
}

#ascensionStats {
    display: flex;
    margin: 10px 0;
    min-width: 1250px;
    justify-content: center;
    align-content: center;
    flex-wrap: wrap;
    gap: 2px 10px;
    font-variant-numeric: tabular-nums;
    line-height: 1em;
}

#ascensionStats > span {
    display: flex;
    white-space: pre;
    align-items: center;
}

#ascensionStats img {
    height: 20px;
    margin: auto 4px auto 0;
}

#ascLen {
    color: darkcyan;
    min-width: 8em; /* prevent bouncing around */
}

#ascC10 {
    color: limegreen;
}

#ascCubes {
    color: yellow;
}

#ascTess {
    color: orchid;
}

#ascHyper {
    color: crimson;
}

#ascPlatonic {
    color: lightgoldenrodyellow;
}

#ascHepteract {
    color: pink;
}

#ascTimeAccel {
    color: royalblue;
}

#ascAscensionTimeAccel {
    color: orange;
}

#ascSingularityCount {
    color: gold;
}

#ascSingLen {
    color: gold;
}

#tabBorder {
    height: 2px;
    position: relative;
    z-index: 0;
}

.challengeContainer {
    display: flex;
    flex-direction: column;
    margin-bottom: auto;
    padding: 5px 10px;
    text-align: left;
    font-size: 1em;
    line-height: 1.1em;
}

#c15RewardList {
    margin-bottom: 10px;
}

.challengePortion {
    width: 26em;
    max-width: 450px;
    color: white;
    margin: 0;
}

.challengeNumber {
    height: auto;
    text-align: left;
    font-size: 1em;
}

.platonicUpgradesContainer {
    display: flex;
    flex-direction: column;
    margin-left: 30px;
}

#platonicUpgradePics {
    font-size: 0;
}

#platonicUpgrades {
    display: flex;
    margin-bottom: 30px;
}

#saveOffToggle {
    min-width: 130px;
    max-width: 200px;
    position: absolute;
    margin-top: 6px;
    margin-left: 193px;
}

.platonicUpgradeImage {
    background-color: var(--buttonimg-color);
    cursor: pointer;
}

.platonicContainer {
    width: 400px;
    display: flex;
    flex-direction: column;
    margin-bottom: auto;
    padding: 5px 10px;
    color: white;
    text-align: left;
    font-size: 1em;
    white-space: pre-wrap;
}

.platonicPortion {
    width: 400px;
    margin: 0;
}

.hepteractGrid {
    display: grid;
    grid-template-columns: repeat(4, calc(60px + 3.8em * 2));
    grid-template-rows: repeat(3, calc(max(28px, 1.1em) * 3));
    margin-top: 10px;
    padding: 8px;
    width: calc((60px + 3.8em + 3.8em + 10px) * 4 + 8px);
    grid-column: shop 2/4;
    grid-row: 1;
    grid-column-gap: 15px;
    grid-row-gap: 15px;
    align-self: flex-start;
    line-height: 1.2em;
    padding-bottom: 2em;
    font-size: min(1em, 20px);
}

.hepteractGrid > div {
    display: grid;
    width: calc(60px + 3.8em + 3.8em);
    grid-template-columns: 60px 3.8em 3.8em;
    grid-template-rows: repeat(2, max(28px, 1.1em));
    align-items: center;
}

.heptTypeImage {
    grid-row: 1 / 3;
    align-self: center;
}

.heptGridInventory {
    grid-column: 1 / 4;
    display: block;
}

#warpAuto,
#powderDayWarp {
    grid-column: 2 / 4;
}

.heptGridInventoryLabel,
.heptGridInventoryValue {
    float: left;
}

.heptGridInventoryValue {
    float: right;
}

.hepteractGrid button {
    border: 2px solid pink;
    width: 100%;
    min-height: 26px;
    height: 1.4em;
    line-height: 1em;
    white-space: nowrap;
    margin: auto 0;
    padding: 0;
}

#hepteractAuto {
    display: block;
}

.autoHepteractText {
    margin-bottom: 5px;
    color: lightgoldenrodyellow;
    text-align: center;
}

.meter {
    height: 1em;
    position: relative;
    background: #555;
    border-radius: 5px;
    padding: 2px;
    grid-column: 1 / 4;
    text-align: center;
    align-self: center;
}

.meter > span {
    display: block;
    height: 100%;
    color: white;
}

.progressBar {
    border-top-right-radius: 5px;
    border-bottom-right-radius: 5px;
    border-top-left-radius: 5px;
    border-bottom-left-radius: 5px;
    overflow: hidden;
    left: 0;
    top: 0;
    position: absolute;
    z-index: 1;
}

.progressText {
    position: absolute;
    color: white;
    z-index: 2;
    left: 50%;
    transform: translateX(-50%);
    top: 0;
    width: 100%;
    white-space: nowrap;
    line-height: 1em;
}

#hepteractCraftTexts {
    display: flex;
    flex-direction: column;
    text-align: center;
    margin-top: 15px;
}

#hepteractCraftTexts > p {
    margin: 0;
}

#hotkeys {
    flex-direction: column;
}

.hotkeys {
    display: grid;
    grid-template-columns: repeat(4, minmax(250px, 1fr));
    margin: 20px auto;
}

.hotkeyItem {
    display: flex;
    flex-direction: row;
    margin-top: 2px;
}

#hotKeyDesc {
    margin: 0;
}

#hotkeyTooltip {
    color: darkorchid;
}

#actualHotkey {
    padding: 1px 15px;
    color: gold;
    cursor: pointer;
}

.resetHotkeys {
    margin-top: 15px;
    display: flex;
    justify-content: center;
    gap: 10px;
}

.resetHotkeys > button {
    min-height: 20px;
    padding: 2px 4px;
}

#saveString {
    word-wrap: anywhere;
}

#singularity {
    position: relative;
    padding: 0;
    text-align: center;
}

#singularityTabsToggle {
    display: flex;
    justify-content: center;
    flex-flow: wrap;
    margin: 15px;
    gap: 10px 15px;
}

#singularityTabsToggle > button {
    min-width: 100px;
    text-align: center;
}

#singularityUpgradeContainer,
#singularityOcteracts {
    display: flex;
    flex-direction: column;
    align-items: center;
}

#actualSingularityUpgradeContainer,
#octeractUpgradeContainer {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    padding: 10px;
    margin-top: 5px;
    width: calc(36px * 14);
    gap: 4px;
}

.singularityUpgrade,
.octeractUpgrade {
    font-size: 0;
}

.singularityUpgrade > img,
.octeractUpgrade > img {
    cursor: pointer;
}

#singularityPenaltiesMultiline,
#singularityPerksMultiline {
    white-space: pre-line;
}

#testingMultiline,
#singularityOcteractsMultiline {
    white-space: pre-line;
    margin: 15px 0 0;
}

.newPerk {
    color: gold;
}
